package cn.maihe.elg.operation.repository.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class InvoiceInfoVo implements java.io.Serializable {
    /**
     * 主键
     */
    private Long id;

    /**
     * 交易中心主键id
     */
    private Long centerId;

    /**
     * 机构主键id
     */
    private Long orgId;

    /**
     * 发票抬头
     */
    private String invoiceTitle;

    /**
     * 发票号码
     */
    private String invoiceNo;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 客户统一社会信用代码
     */
    private String customerCreditCode;

    /**
     * 客户银行账号
     */
    private String customerBankCode;

    /**
     * 客户开户行名称
     */
    private String customerOpneBank;

    /**
     * 客户联系地址
     */
    private String customerAddress;

    /**
     * 客户联系电话
     */
    private String customerPhone;

    /**
     * 客户联系人名称
     */
    private String customerContactName;

    /**
     * 客户联系人电话
     */
    private String customerContactTel;

    /**
     * 客户email
     */
    private String customerContactEamil;

    /**
     * 客户联系地址
     */
    private String customerContactAddress;

    /**
     * 开票金额|保费 分
     */
    private Long amount;

    /**
     * 开票金额中文大写
     */
    private String amountOfChinaese;

    /**
     * 卖方名称
     */
    private String sellerName;

    /**
     * 卖方统一社会信用代码
     */
    private String sellerCreditCode;

    /**
     * 卖方银行账号
     */
    private String sellerBankCode;

    /**
     * 卖方开户行名称
     */
    private String sellerOpenBank;

    /**
     * 卖方联系地址
     */
    private String sellerAddress;

    /**
     * 卖方联系电话
     */
    private String sellerPhone;

    /**
     * 开票员
     */
    private String handler;

    /**
     * 发票备注信息
     */
    private String invoiceRemark;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 更新时间
     */
    private Date gmtModified;

    /**
     * 创建用户
     */
    private String userCreate;

    /**
     * 更新用户
     */
    private String userModified;

    /**
     * 发票内容地址
     */
    private String invoiceImg;

    /**
     * 发票状态枚举值 0开票中 1已开票 2已开票待下载 3开票失败 4 申请中
     */
    private Integer status;

    /**
     * 订单数
     */
    private Integer orderCount;

    private String serialNo;

    private String invoiceCode;

    /**
     * 发票种类1 电子发票， 2 纸质发票
     */
    private Integer invoiceCategory;

    /**
     * 开票类型：1:蓝票;2:红票
     */
    private Integer invoiceType;

    /**
     * 保函类型1-投标保函 2-履约保函 3-工资保函
     */
    private Integer guaranteeType;

    /**
     * 申请单位名称
     */
    private String applyName;

    /**
     * 开票主体类型1 企业， 2 个人
     */
    private Integer invoiceBodyType;

    /**
     * pdf发票下载地址
     */
    private String pdfUrl;

    /**
     * 开票过程备注说明
     */
    private String remark;

    /**
     * 查询次数
     */
    private Integer queryTimes;

    /**
     * 开票方式0人工录入发票号，1接口开票
     */
    private Integer invoiceMode;

    /**
     * 受理订单号若合并开票则逗号隔开
     */
    private String acceptOrderNos;

    /**
     * 发票冲红标识0未冲红1待冲红2冲红中,3冲红成功4冲红失败
     */
    private Integer invoiceReversalFlag;

    /**
     * 冲红发票主键id
     */
    private Long invoiceReversalId;

    /**
     * 发票种类：p,普通发票(电票)(默认);c,普通发票(纸票);s,专用发票;e,收购发票(电票);f,收购发票(纸质);r,普通发票(卷式);
     * b,增值税电子专用发票;j,机动车销售统一发票;u,二手车销售统一发票;
     * bs:电子发票(增值税专用发票)-即数电专票(电子),pc:电子发票(普通发票)-即数电普票(电子),
     * es:数电纸质发票(增值税专用发票)-即数电专票(纸质);ec:数电纸质发票(普通发票)-即数电普票(纸质)
     * es:数电纸质发票(增值税专用发票)-即数电专票(纸质);ec:数电纸质发票(普通发票)-即数电普票(纸质)
     */
    private String invoiceLine;

    /**
     * 通知状态：0-默认；1-通知成功；2：通知失败
     */
    private Integer notifyStatus;
}
